var $table;
var selectionIds = [];	//保存选中ids


$(document).ready(function () {
    searchSjyxx();
});

function searchSjyxx() {
    $('#sjymlListTable').bootstrapTable('destroy');
    $table = $('#sjymlListTable').bootstrapTable({
        url: 'dataSet/querySjyxxBySjjdm',   //请求后台的URL（*）
        method: 'POST',      //请求方式（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",
        dataType: 'json',
        onClickRow: function (row, element, field) {
            $('.info').removeClass('info');//去除之前选中的行的，选中样式
            $(element).addClass('info');//添加当前选中的 success样式用于区别
        },
        striped: true,      //是否显示行间隔色
        cache: true,      //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,     //是否显示分页（*）
        sortable: true,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParams:function(param) {
            var temp = {
                limit:param.limit,
                offset:param.offset,
                sjymc:$('#sjymc').val(),
                sjjdm:Common.GetRequest().sjjdm,
            };
            return temp;
        },//传递参数（*）
        sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
        pageNumber:1,      //初始化加载第一页，默认第一页
        pageSize: 10,      //每页的记录行数（*）
        pageList: [10, 20, 50],  //可供选择的每页的行数（*）
        search: false,      //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
        strictSearch: false,
        showColumns: false,     //是否显示所有的列
        showRefresh: false,     //是否显示刷新按钮
        height: $(document).height()-102,  //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "SJYDM",      //每一行的唯一标识，一般为主键列
        sortName:"SJYDM",
        responseHandler:responseHandler,
        showToggle:false,     //是否显示详细视图和列表视图的切换按钮
        dataLocale:"zh-CN",
        columns: [
            {
                field: "checkStatus",
                checkbox: true,
                align: 'center'
            },{
                field: 'SJYBSF',
                title: '数据元标识符',
                align: 'center',
                valign:'middle'
            }, {
                field: 'SJYMC',
                title: '数据元名称',
                align: 'center',
                valign:"center"
            },{
                field: 'SJKZDM',
                title: '数据元短名',
                align: 'center',
                valign:'middle'
            },{
                field: 'SJYDY',
                title: '定义',
                align: 'center',
                valign:'middle'
            }]
    });

    //选中事件操作数组
    var union = function(array,ids){
        $.each(ids, function (i, SJYDM) {
            if($.inArray(SJYDM,array)==-1){
                array[array.length] = SJYDM;
            }
        });
        return array;
    };
    //取消选中事件操作数组
    var difference = function(array,ids){
        $.each(ids, function (i, SJYDM) {
            var index = $.inArray(SJYDM,array);
            if(index!=-1){
                array.splice(index, 1);
            }
        });
        return array;
    };
    var _ = {"union":union,"difference":difference};
    //绑定选中事件、取消事件、全部选中、全部取消
    $table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
        var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
            return row.SJYDM;
        });
        func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
        selectionIds = _[func](selectionIds, ids);
    });


}

//表格分页之前处理多选框数据
function responseHandler(res) {
    $.each(res.rows, function (i, row) {
        row.checkStatus = $.inArray(row.SJYDM, selectionIds) != -1;	//判断当前行的数据sjydm是否存在与选中的数组，存在则将多选框状态变为true
    });
    return res;
}



//保存
function saveSjyml(){
    var sjjdm = Common.GetRequest().sjjdm;
    var list=[];
    if(selectionIds.length==0){
        alert("请至少选中一行数据添加！");
        return;
    }else{
        selectionIds.map(function(value,index){
            var obj={};
            obj['sjjdm']=sjjdm;
            obj['sjydm']=value;
            list.push(obj);
        });
    }
    $.ajax({
        type: "POST",
        contentType: 'application/json',
        dataType: "json",
        url: 'dataSet/saveSjyml',
        data: JSON.stringify(list),
        success: function (jsonData) {
            if (jsonData.code == 200) {
                LayerWn.showSucAlert('保存成功！');
                for (var k = 0; k < parent.frames.length; k++) {
                    if (parent.frames[k].frameElement.src.indexOf("psms-sjjgl-sjyml.html") != -1)
                        parent.frames[k].initSjyTable();
                }

                setTimeout(function () {
                    cancel();
                }, 1000);
            } else {
                LayerWn.showFailAlert('服务器异常,请联系管理员');
            }
        }
    });
}

//关闭窗口
function cancel(){
    var index = parent.layer.getFrameIndex(window.name);
    parent.layer.close(index);
}


